package com.yulan.Array;

/**
 * 55. 跳跃游戏
 * 给定一个非负整数数组，你最初位于数组的第一个位置。
 *
 * 数组中的每个元素代表你在该位置可以跳跃的最大长度。
 *
 */
public class LeetCode_55 {
    /**
     * 如果某一个作为 起跳点 的格子可以跳跃的距离是 3，那么表示后面 3 个格子都可以作为 起跳点。
     * 可以对每一个能作为 起跳点 的格子都尝试跳一次，把 能跳到最远的距离 不断更新。
     * 如果可以一直跳到最后，就成功了。
     *
     */
    public boolean canJump(int[] nums) {
        int k = 0;
        for(int i = 0;i<nums.length;i++){
            if(i>k) return  false;
            k = Math.max(k,nums[i] + i);
        }
        return true;
    }
}
